package com.fulu.game.bi.entity.po.market;

import com.fulu.game.bi.common.util.math.MathUtils;
import com.fulu.game.bi.entity.vo.market.CommonlyDisplayVO;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 新用户付费区间月统计
 */
@Data
public class UserRepurchaseStat extends CommonlyDisplayVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 统计时间
     */
    private String statDate;
    /**
     * 注册类型系统
     */
    private Integer registerType;
    /**
     * 新用户数
     */
    private Integer userNum;
    /**
     * 1复购次数 2复购天数
     */
    private Integer statType;
    /**
     * 1 总充值 2总消费 3皮皮币充值 4皮皮币消费 5钻石充值 6钻石消费
     */
    private Integer repurchaseType;

    /**
     * 1次总用户
     */
    private Integer totalNum1;
    /**
     * 1次总用户比率
     */
    private BigDecimal totalRatio1;
    /**
     * 2次总用户
     */
    private Integer totalNum2;
    /**
     * 2次总用户比率
     */
    private BigDecimal totalRatio2;
    /**
     * 3次总用户
     */
    private Integer totalNum3;
    /**
     * 3次总用户比率
     */
    private BigDecimal totalRatio3;
    /**
     * 1次新用户
     */
    private Integer newNum1;
    /**
     * 1次新用户比率
     */
    private BigDecimal newRatio1;
    /**
     * 2次新用户
     */
    private Integer newNum2;
    /**
     * 2次新用户比率
     */
    private BigDecimal newRatio2;
    /**
     * 3次新用户
     */
    private Integer newNum3;
    /**
     * 3次新用户比率
     */
    private BigDecimal newRatio3;
    /**
     * 1次老用户
     */
    private Integer oldNum1;
    /**
     * 1次老用户比率
     */
    private BigDecimal oldRatio1;
    /**
     * 2次老用户
     */
    private Integer oldNum2;
    /**
     * 2次老用户比率
     */
    private BigDecimal oldRatio2;
    /**
     * 3次老用户
     */
    private Integer oldNum3;
    /**
     * 3次老用户比率
     */
    private BigDecimal oldRatio3;

    public BigDecimal getTotalRatio1() {
        return MathUtils.ratio(totalNum1, userNum);
    }

    public BigDecimal getTotalRatio2() {
        return MathUtils.ratio(totalNum2, userNum);
    }

    public BigDecimal getTotalRatio3() {
        return MathUtils.ratio(totalNum3, userNum);
    }

    public BigDecimal getNewRatio1() {
        return MathUtils.ratio(newNum1, totalNum1);
    }

    public BigDecimal getNewRatio2() {
        return MathUtils.ratio(newNum2, totalNum2);
    }

    public BigDecimal getNewRatio3() {
        return MathUtils.ratio(newNum3, totalNum3);
    }

    public BigDecimal getOldRatio1() {
        return MathUtils.ratio(oldNum1, totalNum1);
    }

    public BigDecimal getOldRatio2() {
        return MathUtils.ratio(oldNum2, totalNum2);
    }

    public BigDecimal getOldRatio3() {
        return MathUtils.ratio(oldNum3, totalNum3);
    }

}